
package com.cainli.swingworker;

import android.os.Handler;

/**
 * 负责和主线程相关的操作，使用前必须调用 initMainLooper(Context context)，
 * 否则会抛出异常
 * 
 *
 */
public class WorkerUtilities {
    
    /**
     * main looper
     */
//  private static Looper mMainLooper;
//  private static final String TAG ="WorkerUtilities";
    private static Handler handler = new Handler();
    
//  /**
//   * 用来post action的view
//   */
//  private static View mView;
    
    /**
     * 初始化，必须在主线程中调用
     * @param context
     */
    public static void initMainLooper()
    {
        
    }
    
    /**
     * 在ui线程中执行
     * @param run
     */
    public static void invokeInLooper(Runnable run)
    {       
       // QLog.d(TAG, "invokeInLooper run: "+ run);
        handler.post(run);
    }
    
    /**
     * 在ui线程中执行
     * @param run
     * @param delay 延迟多少时间（毫秒）
     */
    public static void invokeInLooper(Runnable run,long delay)
    {
       // QLog.d(TAG, "invokeInLooper d: "+delay+" run: "+ run);
        handler.postDelayed(run, delay);
        
    }
    
    /**
     * 判断调用的线程是否为主线程
     * @return 
     */
    public static boolean isUIThread()
    {
        return Thread.currentThread() == handler.getLooper().getThread();
    }
    
}
